/**
 * <p>版权所有：中企动力
 * <p>未经本公司许可，不得以任何方式复制或使用本程序任何部分
 */
package com.ce.pms.house.service;

import java.util.List;

import com.ce.pms.exception.BusinessException;
import com.ce.pms.base.service.IPmsBaseService;
import com.ce.pms.house.model.MeterType;
import com.ce.pms.house.vo.MeterVO;
import com.sitechasia.webx.core.support.Page;

/**
 * 功能描述: IMeterService
 *
 * @author  付湘辉
 * Created on：  2008-7-8
 * @author  付湘辉
 * update on：  2008-7-8
 */

public interface IMeterService extends IPmsBaseService {
	/**
	 * 方法描述: 验证该房间是否处于退伙中
	 * @author 胡煦
	 * Create on:2008-12-3
	 * @param houseId
	 * @return void
	 * Edit author:
	 * Edit on:
	 * 修改原因：
	 */
	public void checkTheHouseIsInGoout(Long houseId);
	/**
	 * 方法描述:根据房间ID和类型CODE查询有效的走表
	 * @author 胡煦
	 * Create on:2008-8-21
	 * @param houseId,meterTypecode
	 * @return MeterVO
	 * Edit author:
	 * Edit on:
	 * 修改原因：
	 */
	public MeterVO getMeterByType(Long houseId,String meterTypecode);
	/**
	 * 方法描述: 根据走表ID查询MeterVO
	 * @author 胡煦
	 * Create on:2008-10-21
	 * @param meterId
	 * @return MeterVO
	 * Edit author:
	 * Edit on:
	 * 修改原因：
	 */
	public MeterVO findMeterVOBy(Long meterId);
	/**
	 * 方法描述: 检查某房间下该类型是否存在有效的表,返回true说明有，false则没有
	 * @author 胡煦
	 * Create on:2008-8-21
	 * @param houseId,meterTypecode
	 * @return boolean
	 * Edit author:
	 * Edit on:
	 * 修改原因：
	 */
	public boolean checkMeterBy(Long houseId,String meterTypecode);
   /**
	 *
	 * 功能描述: 查询走表类型列表
	 *
	 * @author 付湘辉
	 * Created on:2008-7-8
	 *
	 * 修改原因：
	 * @return List<MeterType> 返回结果
	 */
	public List<MeterType> getMeterTypeList();

   /**
	 *
	 * 功能描述: 修改走表底数
	 *
	 * @author 胡煦
	 * Created on:2008-7-17
	 *
	 * 修改原因：
	 * @param meterVo
	 * @return MeterVO 返回结果
	 */
	public MeterVO editMeterRadix(MeterVO meterVO);

	public MeterVO calculateDosage(MeterVO meterVO);

   /**
	 *
	 * 功能描述: 更换走表
	 *
	 * @author 胡煦
	 * Created on:2008-7-17
	 *
	 * 修改原因：
	 * @param meterVo
	 * @return MeterVO 返回结果
	 */
   public MeterVO changeMeter(MeterVO meterVO)throws BusinessException;

   /**
	 *
	 * 功能描述: 添加走表信息
	 *
	 * @author 付湘辉
	 * Created on:2008-7-8
	 *
	 * 修改原因：
	 * @param meterVo
	 * @return MeterVO 返回结果
	 */
	public MeterVO addMeter(MeterVO meterVo) throws BusinessException;

   /**
	 *
	 * 功能描述: 批量添加走表信息
	 *
	 * @author 付湘辉
	 * Created on:2008-7-8
	 *
	 * 修改原因：
	 * @param meterVo
	 * @return Boolean 成功:true  失败:false
	 */
	public Boolean addMeterBatch(MeterVO meterVo) throws BusinessException;
	/**
	 * 方法描述: 根据房间ID查询所有有效的走表
	 * @author 胡煦
	 * Create on:2009-1-16
	 * @param houseId
	 * @return List<MeterVO>
	 * Edit author:
	 * Edit on:
	 * 修改原因：
	 */
	public List<MeterVO> getMeterListByhouseId(Long houseId);
	/**
	 *
	 * 功能描述: 根据房屋id获得走表资料分页信息
	 *
	 * @author 胡煦
	 * Created on:2008-7-17
	 *
	 * 修改原因：
	 * @param meterVo
	 * @return Page 返回结果
	 */
	public Page queryPageMeterListByHouseId(Long houseId,Integer pageNo,Integer pageSize);

	/**
	 * 功能描述: 得到一个新的走表名称 <br>
	 * meterVo 中必须包含三个属性值，houseId：房屋id,meterTypeId：走表类型id,meterTypeName：走表类型名称<br>
	 * @param meterVo
	 * @return
	 *
	 * Create author:付湘辉 <br>
	 * Create on:2008-7-23  <br>
	 * Edit author:  <br>
	 * Edit on:    <br>
	 * Why:     <br>
	 */
	public String getNewMeterName(MeterVO meterVo);

}
